#include <string.h>
#include "gui_base.h"

/* 特定字库优化函数 */
void gui_asc16(uint16_t x, uint16_t y, const uint8_t c, uint8_t incolor)
{
	uint16_t index;
	uint8_t i, dx, k; 
	
	index = (c-' ')*16;
	
	for(i=0; i<16; i++)
	{
		dx = x;
    
    for(k=0; k<8; k++)
		{
      Lcd_DrawPixel(dx, y+i, font_asc16.c[index + i] & (0x80>>k), incolor);
      dx++;
    }
	}
}

void gui_ascs16(uint16_t x, uint16_t y, const char *s, uint8_t incolor)
{
	for(; *s!='\0'; s++)
	{
		gui_asc16(x, y, *s, incolor);
		x += 8;
	}
}


/* 特定字库优化函数 */
void gui_asc32(uint16_t x, uint16_t y, const uint8_t c, uint8_t incolor)
{
	uint16_t index;
	uint8_t i, dx, k; 
	
	index = (c-'-')*144;
	
	for(i=0; i<48; i++)
	{
		dx = x;
    
    for(k=0; k<8; k++)
		{
      Lcd_DrawPixel(dx, y+i, font_asc32.c[index + (3*i)] & (0x80>>k), incolor);
      dx++;
    }
    
    for(k=0; k<8; k++)
		{
      Lcd_DrawPixel(dx, y+i, font_asc32.c[index + ((3*i) +1)] & (0x80>>k), incolor);
      dx++;
    }
    
    for(k=0; k<8; k++)
		{
      Lcd_DrawPixel(dx, y+i, font_asc32.c[index + ((3*i) +2)] & (0x80>>k), incolor);
      dx++;
    }
	}
}

//void gui_asc32(uint16_t x, uint16_t y, const uint8_t c, uint8_t incolor)
//{
//	uint16_t index;
//	uint8_t i, dx, k; 
//	
//	index = (c-'-')*64;
//	
//	for(i=0; i<32; i++)
//	{
//		dx = x;
//    
//    for(k=0; k<8; k++)
//		{
//      Lcd_DrawPixel(dx, y+i, font_asc32.c[index + (2*i)] & (0x80>>k), incolor);
//      dx++;
//    }
//    
//    for(k=0; k<8; k++)
//		{
//      Lcd_DrawPixel(dx, y+i, font_asc32.c[index + ((2*i) +1)] & (0x80>>k), incolor);
//      dx++;
//    }
//	}
//}

void gui_ascs32(uint16_t x, uint16_t y, const char *s, uint8_t incolor)
{
	for(; *s!='\0'; s++)
	{
		gui_asc32(x, y, *s, incolor);
		x += 24;
	}
}
